// promise 可以解决的问题 
// 1. .then then
// 2. 可以同步多个异步请求的结果

// const fs = require('fs').promises
const fs = require('fs')
const util = require('util')
// let read = util.promisify(fs.readFile)

// 只能转化 node 的 Api
const promisify = (fn) => (...args) => {
    return new Promise((resolve, reject) => {
        fn(...args, function (err, data) { // node 中 err 优先
            if (err) reject(err)
            resolve(data)
        })
    })
}


let read = promisify(fs.readFile)
// function read () {
//     return  new Promise((resolve, reject) => {
//         fs.readFile(name, 'utf8', function(err, data) {
//             if(err) {
//                 reject(err)
//             }
//             resolve(data)
//         })
//     })
// }

read('./node/name.txt', 'utf8').then(data => {
    console.log(data)
}, err => {
    console.log(err)
})

// 将node 的 api 快速的转化成 promise 的形式
// fs.readFile()
